267A - Subtractions - CodeForces Solution


math number theory *900

Please click on ads to support us..

Python Code:

n = int(input())

for i in range(n):
    (a, b) = map(int, input().split(' '))
    if max(a, b) % min(a, b) == 0:
        print(max(a, b) // min(a, b))
    else:
        operations = 0
        bigger_number = max(a, b)
        smaller_number = min(a, b)
        while bigger_number != smaller_number:
            if bigger_number < smaller_number:
                smaller_number, bigger_number = bigger_number, smaller_number

            if bigger_number % smaller_number == 0:
                operations += (bigger_number - smaller_number) // smaller_number
                break
            else:
                operations += bigger_number // smaller_number
                bigger_number = bigger_number % smaller_number

        print(operations + 1)



C++ Code:

#include <cstdio>

int main(){

    int n; scanf("%d", &n);
    while(n--){
        long a(0), b(0); scanf("%ld %ld", &a, &b);
        long total(0);
        while(a > 0 && b > 0){
            if(a > b){total += a/b; a -= (a/b) * b;}
            else{total += b/a; b -= (b/a) * a;}
        }
        printf("%ld\n", total);
    }
    return 0;
}


Comments

Submit
0 Comments
More Questions

1669D - Colorful Stamp
1669B - Triple
1669A - Division
1669H - Maximal AND
1669E - 2-Letter Strings
483A - Counterexample
3C - Tic-tac-toe
1669F - Eating Candies
1323B - Count Subrectangles
991C - Candies
1463A - Dungeon
1671D - Insert a Progression
1671A - String Building
1671B - Consecutive Points Segment
1671C - Dolce Vita
1669G - Fall Down
4D - Mysterious Present
1316B - String Modification
1204A - BowWow and the Timetable
508B - Anton and currency you all know
1672A - Log Chopping
300A - Array
48D - Permutations
677C - Vanya and Label
1583B - Omkar and Heavenly Tree
1703C - Cypher
1511C - Yet Another Card Deck
1698A - XOR Mixup
1702E - Split Into Two Sets
1703B - ICPC Balloons